//
// Created by alice on 25-4-29.
//

#ifndef BARREL_H
#define BARREL_H

#include "Component/Component.h"
#include "../Bullet/Bullet.h"

//这个是武器类
class Barrel:public Component{
protected:
    Slot slot{}; //表示这种武器需要的插槽
    double speed{}; //表示这种武器的射速
    double range{}; //表示这种武器的射程
    double angular{}; //这个是角速度，也就是转向速度
    double thickness{}; //这个是穿甲深度
    bool skyAtk{}; //这个是是否能对空
    bool notSkyAtk{}; //这个是是否能对地面与海洋

    Bullet * bullet{}; //这个是子弹的类的指针

public:
    ~Barrel() override = 0;

    [[nodiscard]] virtual inline Slot getSlot() const;
    [[nodiscard]] virtual inline double getSpeed() const;
    [[nodiscard]] virtual inline double getRange() const;
    [[nodiscard]] virtual inline double getAngular() const;
    [[nodiscard]] virtual inline double getThickness() const;
    [[nodiscard]] virtual inline bool getSkyAtk() const;
    [[nodiscard]] virtual inline bool getNotSkyAtk() const;
    //以上都是获取数据的

    void fire();
};




#endif //BARREL_H
